LibreOffice Calc programının standart işlevselliği, metni diğer dillere çevirme işlevlerini içermez. Ancak herhangi bir kullanıcı böyle bir işlevi bağımsız olarak oluşturabilir.
Bu makalede, herhangi bir çalışma sayfasındaki bir hücredeki metni doğrudan çevirmenize olanak tanıyan özel GoogleTranslate_YouLibreCalc() işlevine bakacağız.
İşlev, metni çevirmek için siteyi kullanır "Google Çeviri" ve herhangi bir formülde hem bağımsız olarak hem de diğer standart işlevlerle birlikte kullanılabilir.
Eklemek function Google Translate , menüyü aç Tools - Macros - Edit Macros... , seçme Module1 ve aşağıdaki metni modüle kopyalayın:
Option VBASupport 1
Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)
' moonexcel.com.ua
Dim FCalc As Object
Dim WebsiteURL As String
Dim XMLHTTP As Object
Dim oHTML As Object
Dim HTMLDoc As HTMLDocument
Dim ObjClass As Object
FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
TextToTranslate = FCalc.callFunction("ENCODEURL", Array(TextToTranslate))
SrcLang = LCase(SrcLang)
TrgLang = LCase(TrgLang)
IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"
IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"
IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"
IF TrgLang = "zh-tw" Then TrgLang = "zh-TW"
WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate
' API çağrısını web sunucusuna AJAX isteğini kullanarak yürütüyoruz
Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
XMLHTTP.Open "GET", WebsiteURL, False
XMLHTTP.Send
' AJAX isteğinin yanıt metnini kullanarak bir HTML belgesi oluşturuyoruz
Set oHTML = CreateObject("HTMLFile")
With oHTML
.Open
.Write XMLHTTP.responseText
.Close
End With
' Web öğeleri kütüphanesini kullanarak HTML metnini bir nesne modeline dönüştürüyoruz Microsoft HTML Object Kütüphane
Set HTMLDoc = oHTML
Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
If Not ObjClass Is Nothing Then
GoogleTranslate_YouLibreCalc = ObjClass.innerText
End If
' Hafızayı serbest bırakıyoruz
Set ObjClass = Nothing
Set oHTML = Nothing
Set XMLHTTP = Nothing
End Function
Sonraki, kapat Macro Editor ve çalışma sayfasına geri dönün LibreOffice Calc , herhangi bir hücreyi seçin ve yeni özelliğimizi kullanın GoogleTranslate_YouLibreCalc() .
Ücretsiz uzantıyı yükleyerek GOOGLETRANSLATE() işlevini de kullanabilirsiniz. YouLibreCalc.oxt veya tam özellikli sürümü YLC_Utilities.oxt .
Bundan sonra bu fonksiyon LibreOffice Calc'de açılacak tüm dosyalarda mevcut olacaktır.